require('./index.scss');
var Tool = require('common/tool');
require('comp/tab');
require('comp/dialog');
var depositPage ;

var vm = avalon.define({
    $id: 'deposit',
    pageTitle:'存款页面',
    step:1,                                     // 1 第一步 填写存款信息  2 第二步 确认存款信息
    tabList:{
        list:[{
            "text":"网上存款",
            "id":"1",
            "href":"#/deposit/index"
        },{
            "text":"银行汇款",
            "id":"2",
            "href":"#/deposit/remit"
        }],
        switchFn(_index){
            console.log(_index);
        }
    },
    dialog:{
        display:"none",
        title: '选择银行',
        desc:'请选择网银支付的银行<span class="danger">（需开通网银，本公司不接受信用卡存款）</span> ：',
        checkBank:"",                                //选中的银行
        inputAccountNumber:"",                       //输入的银行卡号
        close(){
            console.log('log');
        },
        solve(){
            console.log('this',this);
            if( !this.checkBank ){
                layer.alert('请选择银行');
                return false;
            }
            this.display = 'none';
            //切换银行后重新加载支付方式
            if( vm.depositBank.bank !== this.checkBank.bank ) depositPage.queryPayMethod(this.checkBank.bank);
            vm.depositBank = avalon.mix({},this.checkBank);
            if( !this.checkBank.bankAccountNumber ){
                vm.depositBank.bankAccountNumber = this.inputAccountNumber;
            }
        }
    },
    confirmDialog:{
        display:"none",
        className:"confirmDialog",                       // 弹窗样式
        hideClose:true
    },
    /* 输入银行卡时格式化 */
    formatBankAccount:function(e){
        var reg = /(.{4})/g,
            v = e.target.value.replace(/\D+/g,'');
        setTimeout(function(){
            vm.dialog.inputAccountNumber = v.replace(reg,'$1 ').replace(/\s$/,'');
        },0);
    },
    dialogDisplay:'none',
    queryLoad:true,                                     // 进入页面时的加载效果
    payMethod:{
        load: true,                                 // 支付方式的加载效果
        error: true,                                 // 支付方式的错误提示
        list: true                                 // 支付方式的列表
    },
    selPayMethod :'',                                   // 支付方式
    payMoney :'',                                       // 存款金额
    fundProposalNum:'',                                 // 存款申请未完成个数
    depositPlatform:'',                                 // 存款平台
    accountInfo:'',                                     // 账号信息
    accTradeInfoList:'',                                // 存款账号列表
    depositBank:'',                                     // 存款银行
    duplicateList : '',                                 // 其他银行
    bankInfoList : '',                                  // 常用银行
    currency : '',                                      // 美元或人名币
    currencyName : '',                                  // 美元或人名币
    depositLoad  : '',                                  // 加载效果
    fee:'',                                             // 费率
    agreeClause:false,                                  // 是否勾选条款
    submitfn:function(){
        var payMoney = this.payMoney.trim();
        if(!this.selPayMethod || this.selPayMethod.id == ''){
            layer.alert('请选择支付方式');
            return false;
        }else if(!payMoney || isNaN(payMoney)){
            layer.alert('请输入存款金额');
            return false;
        }
        depositPage.depositCheckAjax();
    },
    resetFn:function(){                                     // 重设
        vm.payMoney='';
        vm.selPayMethod=vm.payMethod.list[0];
        $(".payway label").first().find('input')[0].checked = true;  //无法通过avalon控制数据选中for循环生成的radio的效果
    },
    confirmSubmit:function(){                                // 确认存款
        if(!vm.agreeClause){
            layer.alert('请确认存款细则');
            return false;
        }
        createForm();
    },
    /* 切换存款账号 */
    changeAccount:function(){
        var selected = vm.depositPlatform;
        vm.accTradeInfoList.$model.forEach(function(v,i){
            if(v.platform == selected){
                vm.currency = v.currency;
                vm.currencyName = v.currencyName;
                return false;
            }
        });
    }
});

vm.$watch('onReady',function(){
    depositPage = new Deposit();
    window['vm'] = vm;
});

function Deposit(){
    this.queryDeposit();
    this.fundProposal();
}

// 获取存款页面信息
Deposit.prototype.queryDeposit = function(){
    var that = this;
    Tool.ajax({
        url: '/fundDepositOnline',
        type:"post"
    }).done(function(res){
        vm.queryLoad = false;

        var data = res.data,
            validateFile = data.validateFile,
            accTradeInfoList = data.accountInfo.accTradeInfoList,
            uploadList = [];
        if(!validateFile){
            stateman.go('account.infofiles');
            return false;
        }

        vm.accountInfo = data.accountInfo;    //存款账号列表
        vm.accTradeInfoList = accTradeInfoList;    //存款账号列表
        if( accTradeInfoList && accTradeInfoList.length>0 ){
            vm.depositPlatform = accTradeInfoList[0].platform;                             //存款平台
            vm.currencyName = accTradeInfoList[0].currencyName;                          //美元或人名币
            vm.currency = accTradeInfoList[0].currency;                                   //美元或人名币 code
        }
        vm.depositBank = data.firstBankInfo;            //存款银行，默认显示第一个银行
        vm.dialog.checkBank = data.firstBankInfo;       //存款银行，默认显示第一个银行
        vm.duplicateList = data.duplicateList;          //其他银行
        vm.bankInfoList = data.bankInfoList;            //常用银行

        if(accTradeInfoList) that.queryPayMethod(data.firstBankInfo.bank);
    });
}

//根据银行帐号获取可支持的支付方式
Deposit.prototype.queryPayMethod = function(_bank){
    vm.payMethod.load = true;
    Tool.ajax({
        alertMsg:false,
        url: '/queryPayMethodCodeByBank',
        data:{
            bankAccount:_bank
        },
        type:"post"
    }).done(function(res){
        vm.payMethod.load = false;
        var code = res.code;
        if(!res || code!='0'){
            vm.payMethod.error = '该银行没有对应的支付方式，请选择其它银行';
            return false;
        }
        var data = res.data;
        vm.payMethod.list = data.payList;
        vm.selPayMethod = data.payList[0];
    });
}

//存取款提案接口
Deposit.prototype.fundProposal = function(_bank){
    vm.payMethod.load = true;
    Tool.ajax({
        url: '/fundProposal',
        data:{
            operType:'netPayment'
        },
        type:"post"
    }).done(function(res){

        var data = res.data;
        vm.fundProposalNum =data.netPaymentProposalNum;
    });
}

//網上存款数据验证
Deposit.prototype.depositCheckAjax = function(_bank){
    vm.depositLoad = true;
    Tool.ajax({
        url: '/netDepositDataValidate',
        data:{
            platform:vm.depositPlatform,
            payMethod:vm.selPayMethod.id,
            bankAccountNumber:vm.depositBank.bankAccountNumber,
            bank:vm.depositBank.bank,
            amount:vm.payMoney,
            depositCurrency:vm.currency
        },
        type:"post"
    }).done(function(res){
        vm.depositLoad = false;

        var data = res.data;
        vm.fee = data.fee;
        vm.step = 2;
    });
}


function createForm(){
    var $payForm = $("#payForm");
    if( $payForm.length>0 ) $payForm.remove();
    var $form = $('<form id="payForm" name="payForm" method="post" target="_blank" action="/api/ibank.do"></form>');
    $form.append('<input name="platform" type="hidden" value="'+vm.depositPlatform+'" />');
    $form.append('<input name="payMethod" type="hidden" value="'+vm.selPayMethod.id+'" />');
    $form.append('<input name="bankAccountNumber" type="hidden" value="'+vm.depositBank.bankAccountNumber+'" />');
    $form.append('<input name="bank" type="hidden" value="'+vm.depositBank.bank+'" />');
    $form.append('<input name="amount" type="hidden" value="'+vm.payMoney+'" />');
    $form.append('<input name="depositCurrency" type="hidden" value="'+vm.currency+'" />');
    $form.append('<input name="fee" type="hidden" value="'+vm.fee+'" />');
    $("body").append($form);
    $form[0].submit();
}








